<template>
  <!--
  使用说明：
  1）、引入category-cascader.vue
  2）、语法：<category-cascader :catelogPath.sync="catelogPath"></category-cascader>
      解释：
        catelogPath：指定的值是cascader初始化需要显示的值，应该和父组件的catelogPath绑定;
            由于有sync修饰符，所以cascader路径变化以后自动会修改父的catelogPath，这是结合子组件this.$emit("update:catelogPath",v);做的
        -->
  <div>
    <el-cascader :options="categorys" v-model="categoryIdPath" :show-all-levels="false" :props="setting"></el-cascader>
  </div>
</template>

  <script>

  export default {
    props: {
      parentCategoryId: Number,
    },
    data() {

      //这里存放数据
      return {
        categoryId: this.parentCategoryId || 0,
        // 绑定的路径信息
        categoryIdPath: [],
        //  所有分类列表数据
        categorys: [],
        setting: {
          value: "categoryId",
          label: "name",
          children: "children"
        },
      };
    },

    watch: {

      categoryIdPath(v) {
        console.log("获取到选中的选中节点", v);
        this.$emit('getCategoryPath', v)

      }
    },
    //方法集合
    methods: {
      getCategorys() {
        this.$http({
          url: this.$http.adornUrl("/product/category/list/tree"),
          method: "get"
        }).then(({ data }) => {
          this.categorys = data.data;
        });
      },
      //获取分类id列表
      getCategoryIds(id) {
        this.$http({
          url: this.$http.adornUrl("/product/category/getIdListById?catregoryId=" + id),
          method: "get"
        }).then(({ data }) => {
          console.log("获取到的分类id列表", data);
          this.categoryIdPath = data.data;
        });
      }
    },
    //生命周期 - 创建完成（可以访问当前this实例）
    created() {
      this.getCategorys();
    },


  }

</script>
  <style scoped>
  </style>
